/*
 * moto.c
 *
 *  Created on: Dec 6, 2023
 *      Author: 80424
 */

#include "moto.h"


MOTO_POW_StructDef MOTO_UV;

///
///启动电机PWM输出外设
void Moto_Strat(TIM_HandleTypeDef * htim)
{
	HAL_TIM_Base_Start(htim);
	HAL_TIM_PWM_Start(htim,TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(htim,TIM_CHANNEL_2);
	HAL_TIM_PWM_Start(htim,TIM_CHANNEL_3);
}

///设定PWM占空比
//重载为1000 所以输入值应该在0-1000；
void Moto_Set_PWM(TIM_HandleTypeDef * htim,MOTO_POW_StructDef *UV)
{
	__HAL_TIM_SET_COMPARE(htim,TIM_CHANNEL_1,UV->A);
	__HAL_TIM_SET_COMPARE(htim,TIM_CHANNEL_2,UV->B);
	__HAL_TIM_SET_COMPARE(htim,TIM_CHANNEL_3,UV->C);
}

///foc输出的值换算成PWM的占空比
//rtY的变化值为±rtU.q 默认是-50 这个值代表着力矩方向的参考方向
void Moto_Value_Conversion(MOTO_POW_StructDef *UV,ExtY * rtY)
{
	UV->A=(rtY->UV[0]+50)*10;//相位移动 置中
	UV->B=(rtY->UV[1]+50)*10;
	UV->C=(rtY->UV[2]+50)*10;
}
